package com.internetCafes.spms.web.customer.common.util.quali;

import com.internetCafes.spms.web.customer.common.cont.CustomerConst;
import com.internetCafes.spms.web.customer.common.util.MatchUtil;
import com.internetCafes.spms.web.customer.model.customer.quali.QualiMatchRes;
import com.sms.common.util.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Slf4j
public class CustomerQualiUtil {

    /**
     * 资质内容与资质map进行匹配
     *
     * @param qualiMatchMap 资质项
     * @param qualisContent 输入的资质内容
     * @return 匹配上的资质内容
     */
    public static List<QualiMatchRes> qualiContentMatch(Map<String, QualiMatchRes> qualiMatchMap, String qualisContent) {
        if (StrUtil.isBlank(qualisContent)) {
            qualisContent = CustomerConst.QUALI_CONTENT_NULL;
        }
        qualisContent = qualisContent.replaceAll("壹", "一")
                .replaceAll("贰", "二")
                .replaceAll("叁", "三");


        // String content = MatchUtil.replaceBlank(qualisContent);
        // 解析资质内容文本
        String[] qualiContentSplit = qualisContent.split("[,，、\\s/]");

        List<QualiMatchRes> resList = new ArrayList<>();
        for (String qualiContent : qualiContentSplit) {
            qualiContent = MatchUtil.replaceBlank(qualiContent);
            if (StrUtil.isBlank(qualiContent)) {
                continue;
            }
            qualiContent = qualiContentSpecialFilter(qualiContent);
            if (qualiMatchMap.containsKey(qualiContent)) {
                resList.add(qualiMatchMap.get(qualiContent));
            } else {
                log.info(qualiContent);
            }
        }
        return resList;
    }

    /**
     * 资质名称特殊情况处理【临时】
     *
     * @param qualiContent 资质内容
     * @return 资质名称
     */
    private static String qualiContentSpecialFilter(String qualiContent) {
        if ("安许".equals(qualiContent) || "建筑施工企业安全生产许可证".equals(qualiContent)) {
            qualiContent = "建筑安全生产许可证不分等级";
        }
        if ("特种专业（结构补强）专业承包不分等级".equals(qualiContent) || "特种工程(结构补强)专业承包不分等级".equals(qualiContent)) {
            qualiContent = "特种工程专业承包-结构补强分项不分等级";
        }
        if ("施工劳务不分等级".equals(qualiContent)) {
            qualiContent = "劳务分包（不分等级）不分等级";
        }
        if ("公路交通工程(公路机电工程)专业承包二级".equals(qualiContent) || "公路交通工程（公路机电工程）专业承包二级".equals(qualiContent)) {
            qualiContent = "公路交通工程（公路机电工程）二级";
        }
        if ("公路交通工程(公路安全设施)专业承包二级".equals(qualiContent) || "公路交通工程（公路安全设施）专业承包二级".equals(qualiContent)) {
            qualiContent = "公路交通工程（公路安全设施）二级";
        }
        if ("特种工程(特殊设备的起重吊装)专业承包不分等级".equals(qualiContent) || "特种专业（特殊设备起重吊装）专业承包不分等级".equals(qualiContent)) {
            qualiContent = "特种工程专业承包-特殊设备起重吊装分项不分等级";
        }
        if ("特种工程(建筑物纠偏和平移)专业承包不分等级".equals(qualiContent)) {
            qualiContent = "特种工程专业承包-建筑物纠偏和平移分项不分等级";
        }
        if ("混凝土作业专业承包一级".equals(qualiContent)) {
            qualiContent = "预拌混凝土专业承包不分等级";
        }
        if ("特种工程(特种防雷)专业承包不分等级".equals(qualiContent)) {
            qualiContent = "特种工程专业承包-特种防雷分项不分等级";
        }
        return qualiContent;
    }
}
